#pragma once

#include <functional>
#include <vector>

#include "backend/kernel_interface/kernel_scheduler.h"


namespace txdnn {

struct Handle;
struct AnyInvokeParams;

using Invoker = std::function<void(const Handle&, const AnyInvokeParams& primitive_params)>;
using InvokerFactory = std::function<Invoker(const std::vector<txdnn::backend::Kernel>&)>;

} // namespace txdnn